
import FetchHelper from "../helper/fetch-helper";
import { useState, useEffect } from 'react'
import _ from 'lodash';
import { geomToWkt, isIntersects, wktToGeom } from "../helper/mapHelper";
//import { validateSchema } from "webpack";
export default class CztApi {


    static async listByPolygon(polygon) {
        // const resp = await FetchHelper.postJson(`/api/yuqing_datafindby`, params)
        // const resp = await FetchHelper.getJson(`/admin-api/ybyj/cztjcb/list`)
        // const datas = resp.rows?.filter(item => {
        //     if (!item.geom) {
        //         return false;
        //     }
        //     const geom = wktToGeom(item.geom);
        //     return isIntersects(geom, polygon)
        // })
        // const groupData = _.groupBy(datas || [], 'cztxl');
        let wkt = polygon
        if (!_.isString(polygon)) {
            wkt = geomToWkt(wkt);
        }
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/czt/countByXlAndWkt`, {
            wkt: wkt
        })
        resp.data = resp.data?.map(item => {
            if (!item.cztxl) {
                return null
            }
            return {
                name: item.cztxl,
                count: item.count
            }
        }).filter(item => item !== null);
        return resp;
        // return {
        //     data: _.keys(groupData).map(key => {
        //         return {
        //             name: key,
        //             count: groupData[key].length,
        //             list: groupData[key]
        //         }
        //     })
        // };
    }
    static async list(params) {
        try {
            const resp = await FetchHelper.getJson(`/admin-api/ybyj/cztjcb/list`, {
                ...params,
                // cztxl: cztxl,
                //xzqhbm: window.userAreaCode
            })
            resp.rows = resp?.rows?.map(item => {

                if (item?.xq) {
                    try {
                        const json = JSON.parse(item?.xq);
                        return {
                            ...json,
                            ...item,
                        }
                    } catch (e) {

                    }
                }
                return item;
            })
            return resp;
        } catch (err) {
            return { rows: [] }
        }
    }
    static async listId(id) {

        try {
            const resp = await FetchHelper.getJson(`/admin-api/ybyj/cztjcb/list`, {
                id: id,
            })
            return resp;
        } catch (err) {
            return { rows: [] }
        }
    }
    //按名称查找
    static async listName(cztmc) {
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/cztjcb/list`, {
            cztmc: cztmc
        })
        return resp
    }
    static async wktcztlist(cztxl, polygon) {
        let wkt = polygon
        if (!_.isString(polygon)) {
            wkt = geomToWkt(wkt);
        }
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/czt/listCztByXlAndWkt`, {
            cztxl: cztxl,
            wkt: wkt
        })
        return resp;
    }

    static async stat(params) {
        // let a_Array = []
        // let resp
        // if (params === "地震灾害") {
        //     resp = await FetchHelper.getJson(`/admin-api/ybyj/dizhenData/count/by/area`)
        //     if (resp?.data) {
        //         Object.keys(resp.data).forEach(key => {
        //             a_Array.push({ name: key, value: resp.data[key] })
        //             //console.log(key, resp.data[key], a_Array);
        //         })
        //     }
        // } else if (params === '地质灾害') {
        //     const a = ["崩塌", "沉降", "开裂", "塌陷", "滑坡", "泥石流"]
        //     let b = []
        //     for (let e of a) {
        //         const resp = await FetchHelper.getJson(`/admin-api/ybyj/yhsj/groupByXzqhmcByYhlx`, { yhlx: e });
        //         if (resp?.data) {
        //             resp.data.forEach(item => {
        //                 const [key, value] = Object.entries(item)[0];
        //                 const existing = b.find(bItem => bItem.name === key);
        //                 if (existing) {
        //                     existing.value += value;
        //                 } else {
        //                     b.push({ name: key, value: value });
        //                 }
        //             });
        //         } else {
        //             b.push({ name: "暂无", value: "暂无" });
        //         }
        //     }
        //     a_Array = b
        // } else {
        //     resp = await FetchHelper.getJson(`/admin-api/ybyj/yhsj/groupByXzqhmcByYhlx`, { yhlx: params })
        //     if (resp?.data) {
        //         a_Array = resp.data.map(item => {
        //             const [key, value] = Object.entries(item)[0];
        //             return { name: key, value: value };
        //         });
        //         // Object.keys(resp.data).forEach(key => {
        //         //     a_Array.push({ name: key, value: resp.data[key] })
        //         console.log('a_Array', a_Array);
        //         // })
        //     } else {
        //         a_Array.push({ name: "暂无", value: "暂无" })
        //     }
        // }




        // // "南溪区": 5,
        // //     "长宁县": 100,
        // //         "筠连县": 18,
        // //             "兴文县": 41,
        // //                 "叙州区": 2,
        // //                     "江安县": 6,
        // //                         "屏山县": 10
        // return a_Array
        return [{
            name: "嘉陵区",
            value: 2
            //value: parseInt(Math.random() * 100)
        },
       
        ]
    }

    static async listByPloygon1(wkt) {
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/yhsj/countByLxAndWkt`, {
            wkt: wkt
        })
        return resp;
    }
    static async listByPolygon2(wkt) {
        if (!_.isString(wkt)) {
            wkt = geomToWkt(wkt);
        }
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/czt/countByXlAndWkt`, {
            wkt: wkt
        })
        return resp;
    }
    //监测预警监测点详情字段
    static async cztxq(cztxl, polygon) {
        // const resp = await FetchHelper.postJson(`/api/yuqing_datafindby`, params)
        // const resp = await FetchHelper.getJson(`/admin-api/ybyj/cztjcb/list`)
        // const datas = resp.rows?.filter(item => {
        //     if (!item.geom) {
        //         return false;
        //     }
        //     const geom = wktToGeom(item.geom);
        //     return isIntersects(geom, polygon)
        // })
        // const groupData = _.groupBy(datas || [], 'cztxl');
        let wkt = polygon
        if (!_.isString(polygon)) {
            wkt = geomToWkt(wkt);
        }
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/czt/listCztByXlAndWkt`, {
            cztxl: cztxl,
            wkt: wkt
        })
        resp.data = resp.data?.map(item => {
            return {
                title: item.cztmc ? item.cztmc : item.jgmc,
                // id: item.id,
                // xq: item.xq,
                ...item,
                geom: item.wkt || item.geom
            }
        })
        return resp;
        // return {
        //     data: _.keys(groupData).map(key => {
        //         return {
        //             name: key,
        //             count: groupData[key].length,
        //             list: groupData[key]
        //         }
        //     })
        // };
    }
    //监测预警监测点详情字段
    static async jzzyxq(jzzyxl, polygon) {
        // const resp = await FetchHelper.postJson(`/api/yuqing_datafindby`, params)
        // const resp = await FetchHelper.getJson(`/admin-api/ybyj/cztjcb/list`)
        // const datas = resp.rows?.filter(item => {
        //     if (!item.geom) {
        //         return false;
        //     }
        //     const geom = wktToGeom(item.geom);
        //     return isIntersects(geom, polygon)
        // })
        // const groupData = _.groupBy(datas || [], 'cztxl');
        let wkt = polygon
        if (!_.isString(polygon)) {
            wkt = geomToWkt(wkt);
        }
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/jzzy/selectJzzymcByXlAndWkt`, {
            jzzyxl: jzzyxl,
            wkt: wkt
        })
        resp.data = resp.data?.map(item => {
            return {
                title: item.jzzymc,
                id: item.id,
                xq: item.xq,
                ...item
            }
        })
        return resp;
        // return {
        //     data: _.keys(groupData).map(key => {
        //         return {
        //             name: key,
        //             count: groupData[key].length,
        //             list: groupData[key]
        //         }
        //     })
        // };
    }
    //致灾风险分析详情接口和次生灾害
    static async zzfxxq(yhlx, polygon) {
        let wkt = polygon
        if (!_.isString(polygon)) {
            wkt = geomToWkt(wkt);
        }
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/yhsj/selectByYhlxAndWkt`, {
            wkt: wkt,
            yhlx: yhlx
        })
        return resp
    }
    static async jzzyxlWkt(jzzyxl, wkt) {
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/jzzy/selectJzzymcByXlAndWkt`, {
            jzzyxl: jzzyxl,
            wkt: wkt
        })
        resp.data = resp.data?.map(item => {
            return {
                id: item.id,
                title: item.jzzymc,
                xq: item.xq,
                ...item
            }
        })

        return resp;
    }
    static async jzzyxlWkt_pol(jzzyxl, polygon) {
        let wkt = polygon
        if (!_.isString(polygon)) {
            wkt = geomToWkt(wkt);
        }
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/jzzy/selectJzzymcByXlAndWkt`, {
            jzzyxl: jzzyxl,
            wkt: wkt
        })
        resp.data = resp.data?.map(item => {
            return {
                id: item.id,
                title: item.jzzymc,
                xq: item.xq,
            }
        })

        return resp;
    }
    static async groupByXl(xlmc) {
        const resp = await FetchHelper.getJson(`/admin-api/ybyj/cztjcb/groupByXl`, {
            xlmc: xlmc
        })
        return resp;
    }

}
